<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class M_Subsidio extends Modelo {

    public $id = null;
    public $demandadoId;
    public $pagoId;
    public $demandadoXPedidoSubsidioId;
    public $fecha;
    public $descripcion;
    public $importe;

    function __construct() {
        parent::__construct();
        $this->tabla = 'subsidios';
    }

    function setAttributes($datos = array(), $tipo = 'object') {
        return parent::_setAttributes(__CLASS__, $datos, $tipo);
    }

    function doArray() {
        return parent::_doArray(__CLASS__);
    }

    /**
     * Devuelve valores por defecto en un arreglo.
     */
    function getValidacion() {
        $valid = array(
            array('field' => 'demandadoId', 'label' => 'Depto Judicial', 'rules' => 'trim|required'),
            array('field' => 'demandadoXPedidoSubsidioId', 'label' => 'Fueros', 'rules' => 'trim|required'),
            array('field' => 'fecha', 'label' => 'Fecha Inicio', 'rules' => 'trim|required'),
            array('field' => 'descripcion', 'label' => 'Fecha de Precentación', 'rules' => 'trim|required'),
            array('field' => 'importe', 'label' => 'Partido del Hecho', 'rules' => 'trim|money'),
            array('field' => 'estado', 'label' => 'Partido del Hecho', 'rules' => 'trim|required'),
        );

        return $valid;
    }

    /**
     * Devuelve valores por defecto en un arreglo.
     */
    function valoresPorDefecto() {
        return array(
            'demandadoId' => '',
            'pagoId' => '',
            'demandadoXPedidoSubsidioId' => '',
            'fecha' => gmdate('d/m/Y'),
            'descripcion' => '',
            'importe' => '0.00',
        );
    }

    /**
     * 
     */
    function getOrdernesPago() {
        $select =
                $this->tabla . '.*,
                causas.id causaId,
                medicos.matricula,
                medicos.nombre,
                caratulas.nombre caratula,
                caratulas.nroExpediente,
                caratulas.juzgado,
                caratulas.fiscalia
                ';
        $this->db->select($select);
        $this->db->from($this->tabla);
        $this->db->join('demandados', 'demandados.id = ' . $this->tabla . '.demandadoId');
        $this->db->join('medicos', 'demandados.matricula = medicos.matricula');
        $this->db->join('causas', 'causas.id = demandados.causaId');
        $this->db->join('caratulas', 'caratulas.causaId = causas.id');
        $this->db->where('caratulas.id in (
                                            SELECT max(ssap_caratulas.id) 
                                            FROM ssap_caratulas 
                                            JOIN ssap_causas c
                                            ON c.id = ssap_caratulas.causaId 
                                            WHERE ssap_causas.id = c.id
                                            )');
        $this->db->where($this->tabla . '.demandadoXPedidoSubsidioId !=', '0');
        $this->db->where($this->tabla . '.pagoId', '0');

        $results = $this->db->get();

        return $results->result_object();
    }

    /**
     * 
     */
    function getUltimosPagos() {
        $select =
                $this->tabla . '.*,
                causas.id causaId,
                medicos.matricula,
                medicos.nombre,
                caratulas.nombre caratula,
                caratulas.nroExpediente,
                caratulas.juzgado,
                caratulas.fiscalia,
                pagos.nroCptePago,
                pagos.nroCheque,
                pagos.moneda,
                pagos.importe totalimporte,
                pagos.beneficiario
                ';
        $this->db->select($select);
        $this->db->from($this->tabla);
        $this->db->join('demandados', 'demandados.id = ' . $this->tabla . '.demandadoId');
        $this->db->join('medicos', 'demandados.matricula = medicos.matricula');
        $this->db->join('pagos', 'pagos.id = ' . $this->tabla . '.pagoId');
        $this->db->join('causas', 'causas.id = demandados.causaId');
        $this->db->join('caratulas', 'caratulas.causaId = causas.id');
        $this->db->where('caratulas.id in (
                                            SELECT max(ssap_caratulas.id) 
                                            FROM ssap_caratulas 
                                            JOIN ssap_causas c
                                            ON c.id = ssap_caratulas.causaId 
                                            WHERE ssap_causas.id = c.id
                                            )');
        $this->db->where('month(ssap_subsidios.fecha)', gmdate('m'));
        $this->db->where($this->tabla . '.pagoId !=', '0');

        $results = $this->db->get();

        return $results->result_object();
    }

    /*
     * 
     */

    function getOrdernePago($id) {
        $select =
                $this->tabla . '.*,
                medicos.matricula,
                medicos.nombre,
                caratulas.nombre caratula,
                caratulas.nroExpediente,
                caratulas.juzgado,
                caratulas.fiscalia
                ';
        $this->db->select($select);
        $this->db->from($this->tabla);
        $this->db->join('demandados', 'demandados.id = ' . $this->tabla . '.demandadoId');
        $this->db->join('medicos', 'demandados.matricula = medicos.matricula');
        $this->db->join('causas', 'causas.id = demandados.causaId');
        $this->db->join('caratulas', 'caratulas.causaId = causas.id');
        $this->db->where('caratulas.id in (
                                            SELECT max(ssap_caratulas.id) 
                                            FROM ssap_caratulas 
                                            JOIN ssap_causas c
                                            ON c.id = ssap_caratulas.causaId 
                                            WHERE ssap_causas.id = c.id
                                            )');
        $this->db->where($this->tabla . '.id', $id);

        $results = $this->db->get();

        return $results->result_object();
    }

}